package com.zhejiangzhengyuan.municipal_common.entity.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import java.sql.Timestamp;

/**
 * 物联网设备表，用于存储物联网监测设备数据
 *
 * @author linju
 * @since 2019-11-22
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "DeviceVo对象", description = "物联网设备表,关联显示对象")
public class DeviceVo {
  private Long id;

  @ApiModelProperty(value = "警报事件id")
  private Long wid;

  @ApiModelProperty(value = "设备类型，关联字典条目表")
  private String type;

  @ApiModelProperty(value = "设备名称")
  private String name;

  @ApiModelProperty(value = "设备编码")
  private String code;

  @ApiModelProperty(value = "设施(井盖)编码")
  private String fCode;

  @ApiModelProperty(value = "设备所在地理位置的经度")
  private String longitude;

  @ApiModelProperty(value = "设备所在地理位置的纬度")
  private String latitude;

  @ApiModelProperty(value = "设备安装地理位置文字描述")
  private String geomDes;

  @ApiModelProperty(value = "设备安装所处区域，如果使用该字段，该字段来自于字典表，用于划分区域")
  private String regionCode;

  @ApiModelProperty(value = "设备当前状态，如：在线、断线等，关联字典条目表")
  private String status;

  @ApiModelProperty(value = "设备安装时间")
  private Timestamp installTime;

  @ApiModelProperty(value = "设备安装施工单位，单位数据目前统一存储于字典表，如果需要展示更多单位数据，可单独建表进行拓展存储")
  private String constructionUnit;

  @ApiModelProperty(value = "设备运维单位")
  private String operationUnit;

  @ApiModelProperty(value = "设备生产单位")
  private String productionUnit;

  @ApiModelProperty(value = "备注")
  private String remark;

  @ApiModelProperty(value = "记录创建时间")
  private Timestamp createTime;

  @ApiModelProperty(value = "记录更新时间")
  private Timestamp updateTime;

  @NotBlank(message = "设备寿命不能为空")
  @ApiModelProperty(value = "设备寿命")
  private String life;

  @NotBlank(message = "设备电池寿命不能为空")
  @ApiModelProperty(value = "设备电池寿命")
  private String batteryLife;

  @NotBlank(message = "物探点号不能为空")
  @ApiModelProperty(value = "物探点号")
  private String geophysicalPeriod;

  @ApiModelProperty(value = "轮询时间")
  private String polling;

  @ApiModelProperty(value = "告警方式")
  private String warnType;

  @ApiModelProperty(value = "一氧化氮")
  private String co;

  @ApiModelProperty(value = "氨气")
  private String nh3;

  @ApiModelProperty(value = "硫化氢")
  private String h2s;

  @ApiModelProperty(value = "液位")
  private String gauge;

  @ApiModelProperty(value = "是否异常")
  private boolean warn;

  @ApiModelProperty(value = "是否派单")
  private boolean sendOrder;

  @ApiModelProperty("LED节目内容展示")
  private String text;
}
